Palletizing containers for charging electronic devices contained therein

ABSTRACT

A system and method palletize containers having electrical terminals for charging electronic devices packaged therein. First, a stacking pattern is determined on the basis of the sizes, shapes, and locations of electrical terminals on both the pallets and the containers to be stacked. These data may be read, for example, with a computer vision system that uses an articulating robotic arm, and may be encoded in a two-dimensional barcode on each pallet and/or container. Next, the robotic arm stacks the container so that its terminals make electrical contact with terminals on the pallet, or on a previously-stacked layer of containers. Then, the placement is tested to ensure that a good electrical connection exists vertically through the entire stack. Once the pallet is finalized, all electronic devices carried thereon may be simultaneously charged during transit or storage.

FIELD

The disclosure pertains generally to machines and methods for palletizing bundles of rigid product containers, and more particularly to stacking containers having terminals for charging electronic devices during transport or storage.

BACKGROUND

Pallets are used for transport and storage of boxes. A common size of pallet, and one that has been recommended as a standard for industry, has dimensions of 40″ by 48″. However, many other sizes are currently in use. For each size, a number of pallet patterns, or ways of stacking individual cartons or containers on the pallet, have been devised. FIG. 1 shows several illustrative patterns developed by the U. S. Navy Bureau of Supplies and Accounts. Many others have been developed by this same organization for pallets of various sizes. Pallet size and modular packaging box dimensions must be determined concurrently if the pallet-package sub-system is to be most effectively designed.

As indicated in FIG. 2, wrong palletization can be a source of unforeseen costs, as improperly stacking the boxes reduces the strength of the stack and increases the chance of damage during transit. Overlapping the boxes reduces the compressive load bearing capacity of the underlying boxes by up to 50%. The boxes also should not extend past the edge of the pallet. Even extending half an inch outward may reduce the compressive load bearing capacity by 33% and increase the likelihood of damage.

SUMMARY OF DISCLOSED EMBODIMENTS

Disclosed embodiments provide systems and methods for palletizing or crating containers that have electrical terminals for charging electronic devices. The design and manufacture of such containers may be found in our U.S. patent application Ser. No. 16/731,465, titled “Packaging Container and Method for Charging a Stack of Electronic Devices,” the entire contents of which are incorporated herein by reference. It is appreciated that, while these containers advantageously may be used to charge stored electronic devices, to effectively charge an entire stack of such devices at once requires the stack to be formed according to a stacking pattern that provides for electrical contact between the terminals on the bottom of each container with the terminals on the top of each underlying container or the pallet itself. This problem is solved by identifying the size, shape, and location of the electrical terminals on each of the containers, then analyzing these parameters to determine an optimal stacking pattern. After this pattern has been determined, the containers are obtained (e.g. from a conveyor system) and stacked accordingly by a robotic arm.

Thus, a first embodiment is a method of palletizing containers. The method includes first obtaining a container for a given pallet. The container has first electrical terminals for charging electronic devices packaged therein. The method next includes using a computer vision system to automatically identify physical locations, on the exterior of the container, of the first electrical terminals. The method then includes using a robotic arm to stack the container on the given pallet on the basis of both (a) the identified physical locations and (b) a stacking pattern for the given pallet, so that one or more of the first electrical terminals make electrical contact with one or more second electrical terminals having previously-identified locations.

In some embodiments, using the robotic arm to stack the container comprises, when stacking a bottom layer of containers, stacking the container so that the one or more of the first electrical terminals make electrical contact with the one or more second electrical terminals at fixed locations on a top surface of the given pallet.

In some embodiments, using the robotic arm to stack the container comprises, when stacking a layer other than a bottom layer of containers, stacking the container so that the one or more of the first electrical terminals make electrical contact with the one or more second electrical terminals on a top surface of a previously-stacked container.

In some embodiments, stacking the container comprises using a computer vision system, mounted on the robotic arm, to identify locations of the first electrical terminals on the container. In some embodiments, this includes scanning a two-dimensional barcode that encodes the locations of the first electrical terminals on the container.

Some embodiments include using a first electrical probe, mounted on the robotic arm, to test electrical connectivity between a terminal electrically coupled to the one or more of the first electrical terminals, and a terminal electrically coupled to the one or more of the second electrical terminals. In some embodiments, the terminal electrically coupled to the one or more of the first electrical terminals comprises a terminal on a top surface of the container, and the terminal electrically coupled to the one or more of the second electrical terminals comprises a terminal on the given pallet. Some embodiments further include, when the test indicates a lack of electrical connectivity, using the robotic arm to set the container aside for manual inspection.

And some embodiments include using a computer processor to determine the stacking pattern as a function of linear dimensions of both the given pallet and containers to be stacked thereon, and of the locations of the first and second electrical terminals.

A second embodiment is a tangible, computer-readable storage medium, in which is non-transitorily stored computer program code that, when executed by a computing processor, performs any of the above methods.

A third embodiment is a system for palletizing containers. The system includes an articulating robotic arm having a grasper, a camera, and an electrical probe. The system also includes a computer processor, coupled to the robotic arm. The computer processor is configured to control the camera to determine an orientation of, and image a barcode on a top surface of, a container. The computer processor also is configured, based on the barcode, to identify physical locations, on the exterior of the container, of first electrical terminals for charging electronic devices packaged therein. The computer processor further is configured to control the grasper to stack the container on a given pallet on the basis of both (a) the identified physical locations and (b) a stacking pattern for the given pallet, so that one or more of the first electrical terminals make electrical contact with one or more second electrical terminals having previously-identified locations. The computer processor moreover is configured to control the electrical probe to test electrical connectivity between a terminal electrically coupled to the one or more of the first electrical terminals, and a terminal electrically coupled to the one or more of the second electrical terminals.

In some embodiments, the computer processor is further configured to determine the stacking pattern as a function of linear dimensions of both the given pallet and containers to be stacked thereon, and of the locations of the first electrical terminals.

DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The manner and process of making and using the disclosed embodiments may be appreciated by reference to the drawings, in which:

FIG. 1 shows various palletization or stacking patterns known in the art;

FIG. 2 shows various known transport and storage issues that can be caused by improper palletization of containers;

FIG. 3 shows a side perspective view of an illustrative product container having charging terminals for charging electronic devices packaged therein;

FIG. 4A is a flowchart for a method of determining a stacking pattern for palletizing product containers such as that shown in FIG. 3;

FIG. 4B is a flowchart for a method of palletizing product containers according to the stacking pattern determined by the method of FIG. 4A;

FIG. 5 schematically shows components of a system for determining stacking patterns and palletizing product containers; and

FIG. 6 schematically shows relevant physical components of a computer that may be used to embody the concepts, structures, and techniques disclosed herein.

DETAILED DESCRIPTION OF EMBODIMENTS

A system and method palletize containers having electrical terminals for charging electronic devices packaged therein. First, a stacking pattern is determined on the basis of the sizes, shapes, and locations of electrical terminals on both the pallets and the containers to be stacked. These data may be read, for example, with a computer vision system that uses an articulating robotic arm, and may be encoded in a two-dimensional barcode on each pallet and/or container. Next, the robotic arm stacks the container so that its terminals make electrical contact with terminals on the pallet, or on a previously-stacked layer of containers. Then, the placement is tested to ensure that a good electrical connection exists vertically through the entire stack. Once the pallet is finalized, all electronic devices carried thereon may be simultaneously charged during transit or storage.

FIG. 3 shows a side perspective view of an illustrative product container 10 having charging terminals for charging one or more electronic devices packaged therein. The electronic device may be, without limitation, a smartphone, a tablet computer, a laptop computer, or a desktop computer. In general, however, electronic devices compatible with this disclosure need only have an electrically powered component, an energy store (such as a battery) for powering the component, and some interface for charging or recharging the energy store. It is therefore appreciated that a wide variety of electronic devices may be compatible with embodiments.

The container 10 includes six conductive plates (collectively “plates 12”) on a top surface. Four of these plates 12 a, 12 b, 12 c, 12 d are electrical terminals for providing a charge voltage to the packaged electronic device(s). One of these posts is coupled to a pogo pin (not shown) on the bottom surface of the container 10. Two of the plates 12 e, 12 f are coupled to internal wires for providing a ground voltage. Corresponding plate(s) or pogo pin(s), not shown, are embedded in the bottom surface of the container 10, forming an electrical path through the container 10 that includes the packaged electronic device(s) as its load. It is appreciated that this design retains a 180 degree (2-way) rotational symmetry for stacking patterns that overlap containers in a brick-like pattern (see FIG. 1).

FIG. 3 is provided as merely one illustration of how the electrical plates and pins may be arranged in accordance with an embodiment of the concepts, techniques, and structures described herein. It is appreciated that other arrangements may be used without deviating from those teachings. In particular, the plates 12 may be arranged in other patterns, especially to provide 90 degree (4-way) rotational symmetry for stacking patterns that overlap containers in a pinwheel-like pattern (see FIG. 1). It is appreciated that a person having ordinary skill in the art will have knowledge of such patterns, and thus be capable of designing product containers like container 10 having desired placement of conductive plates. Thus, the number, size, placement, internal electrical connections, and function of each of the plates in FIG. 3 (and the plates or pins on the bottom surface, not shown) is merely illustrative, and should not be viewed as limiting.

As described below in more detail below, various embodiments stack product containers, such as container 10, on a pallet or crate using a robotic arm with a computer vision system. In order to provide an electric charging voltage to an entire stack of such containers, the computer vision system must determine an orientation of the container, and locations of the plates 12 and the plates or pins on the bottom surface. While it is possible, it may be difficult to determine the location of the plates or pins on the bottom of the container 10 for alignment with the locations of the plates 12 on a similar, already-stacked container. To aid in this determination, the container 10 illustratively includes a two-dimensional barcode, shown as a QR code 14. In various embodiments, the QR code 14 encodes a stock keeping unit (SKU) number for the container or other identifier, which may be decoded (e.g. by reference to a database) to retrieve the positions not only of the plates 12, but also of the plates or pins on the bottom of the container 10. Alternately, the QR code 14 may directly store these data. An attached computer system may store these data temporarily, for use when stacking another container on top of the container 10 to ensure proper alignment of the electrically conductive elements.

It is appreciated that charging a stack of containers may be performed by direct wired connection to one or more of the plates 12. In embodiments, a charging voltage may be applied according to the type of electronic device(s) packaged within the container 10, e.g. 20 volts of direct current (DC) power may be provided. Alternately, charging may be performed by wireless transfer of energy, e.g. by induction. In this connection, some embodiments provide, instead of plates 12, inductive coils inside the container 10 (not shown) for coupling to an external, wireless charging system. Again, the charging voltage may be applied according to the type of device, e.g. 28 volts of alternating current (AC) power. Of course, these voltages are merely illustrative, and a person of ordinary skill in the art will appreciate how to use other voltages to charge different electronic devices.

In accordance with the concepts, techniques, and structures disclosed herein, product containers, such as container 10, may be stacked so that electrical terminals of adjacent boxes physically contact each other. In this way, electrical circuits are formed vertically through the entire stack, each circuit passing vertically through multiple containers, having terminals on the top layer of the stack and terminals on the bottom layer of the stack. However, for such circuits to be electrically sound, the exterior terminals (e.g. plates 12 and pins) on each such container must make sound electrical contact with terminals on the vertically-adjacent containers (or to terminals on the pallet, for the bottom layer of containers). This is accomplished only if the containers are stacked according to a stacking pattern that is appropriate to the locations of the terminals.

Therefore, in FIG. 4A is shown a flowchart for a method 20 of determining a stacking pattern for palletizing product containers, such as container 10 shown in FIG. 3. In various embodiments, the method 20 may be carried out by a system for palletizing containers, such as that shown in FIG. 6, or in whole or in part by a computer shown in FIG. 7, or by some other combination of hardware, firmware, and/or software.

The method 20 begins with an idle process 21, which acts as an idle state for the entire palletizing system. The idle process 21 allows the palletizing system to perform functions unrelated to palletizing, for example execute an operating system having non-palletizing applications.

Upon receiving an event indicating that palletizing is to occur, the method 20 continues with a decision process 23, in which the palletizing system determines whether a new pallet should be formed, and thus whether a stacking pattern for that pallet must be determined. If so, the method 20 continues to determine the pattern. If not, the method 20 optionally may continue, in some embodiments in which the system performs both stacking pattern determination and actually stacks containers, to execute the process 30 shown in FIG. 4B to stack a product container, discussed below. Alternately, if the system only determines stacking patterns, the method 20 returns to the idle process 21.

To determine the stacking pattern, the method 20 performs an analyzing process 25 that analyzes the pallet to be used. As described above, pallets may come in different sizes, of which 40″ by 48″ is only one standard size. The analyzing process 25 may include, for example, scanning a barcode (e.g. a QR code) on a pallet to be used, or otherwise employing a computer vision system to image the pallet, then estimate or compute its size from the image. Alternately, the palletizing system may be employed only for use with pallets of a given configuration, in which case the analysis may consist simply of identifying the size of the given configuration.

In accordance with disclosed embodiments, the pallets may be equipped with electrical terminals for charging electronic devices packaged in product containers stacked thereon. Thus, the analyzing process 25 also may determine the locations of those terminals. In particular, those locations may change according to different size containers that are intended to be used, or different stacking patterns to be used. Illustratively, determining these locations may be done by scanning the barcode on the pallet, which may encode not only the pallet's size but also the locations of its terminals. Alternately, the palletizing system may use the computer vision system to image the pallet and determine the locations from the image. Or, if the system is employed only for use with certain pallets, the analyzing process 25 may simply identify the known terminal locations.

The method 20 continues with an analyzing process 27 that analyzes the containers to be stacked on the pallet. As noted above, product containers may come in a wide variety of shapes and sizes, and not all such shapes and sizes are compatible with the shape, size, and location of electrical terminals on any given pallet. The analyzing process 27 may include, therefore, scanning a barcode (e.g. a QR code) on a container to be stacked, or otherwise employing a computer vision system to image the container, then estimate or compute its size from the image. Alternately, the palletizing system may be employed only for use with containers of a given configuration, in which case the analysis may consist simply of identifying the size of the given configuration.

In accordance with disclosed embodiments, the containers are equipped with electrical terminals for charging electronic devices packaged therein. Thus, the analyzing process 27 also may determine the locations of those terminals. In particular, those locations may change according to a variety of different pallets with which the container is intended to be used, or different stacking patterns to be used. Illustratively, determining these locations may be done by scanning the barcode on the container, which may encode not only the container's size and shape but also the locations of its terminals. Alternately, the palletizing system may use the computer vision system to image the container and determine the locations from the image. Or, if the system is employed only for use with containers having known parameters, the analyzing process 27 may simply identify the known terminal locations.

The method 20 continues with a process 29 for determining an optimal stacking pattern. That is, the palletizing system uses information about the pallet determined in analyzing process 25 and information about the product containers determined in analyzing process 27 to determine the stacking pattern for containers of the given configuration on the given pallet. Determining the optimal stacking pattern may include selecting a pattern from a pre-determined set of patterns (e.g., the patterns of FIG. 1), or it may include computing a stacking pattern. It is contemplated that containers of different sizes, shapes, and electrical terminal locations may be stacked on a single pallet (see e.g. the “split row” and bottom center “pinwheel” patterns of FIG. 1), and that computation of an optimal stacking pattern or arrangement may be necessary in the event of heterogeneous container parameters.

This illustration is in accordance with the ordinary sequence to first determine an appropriate pallet or carton for a product known to be packaged in particularly dimensioned containers, then to determine the stacking pattern. That is, the sequence may be represented as product→container→pallet type→pattern. However, it is appreciated that one may instead reverse the order of the sequence: first select a stacking pattern, then from the pattern determine the pallets that are compatible, then the containers that can be stacked thereon, then select for stacking containers from among those types. Thus, the reverse sequence may be represented as pattern→pallet type→container(s)→product(s). The reversed order may be used to stack containers having different sizes and shapes, and that contain different products, while retaining the advantageous, simultaneous-charging feature.

Regardless of the particular order of the sequence to associate products with optimal stacking patterns, stacking proceeds separately according to the pattern. Thus, in FIG. 4B is shown a flowchart for a method 30 of palletizing product containers according to the stacking pattern. As shown, the method 30 begins after the method 20 of FIG. 4A, and returns there upon completion. However, it is appreciated that in some embodiments the method 30 may be performed by itself, without first performing the method 20 of FIG. 4A. The method 30 may be performed by a system for palletizing containers, such as that shown in FIG. 6, or in whole or in part by a computer shown in FIG. 7, or by some other combination of hardware, firmware, and/or software. The system performing the method 30 may be the same as that performing the method 20, or it may be a different system.

The method 30 begins with a process 31 of obtaining a container for a given pallet. The container, of course, has electrical terminals on opposing surfaces for charging electronic devices packaged therein. The process 31 may be performed illustratively by an articulating robotic arm having a grasper, as known in the art, and the container may be obtained from a conveyor belt system or other means.

The method 30 continues with a decision process 33 in which the palletizing system determines whether the obtained container is to be stacked on the bottom layer—that is, directly onto the pallet as opposed to on top of another container. If so, then the method 30 advances to a stacking process 35 in which the obtained container is stacked onto the pallet. In some embodiments, the pallet itself has electrical terminals at fixed locations on its top surface, in which case the stacking process 35 may stack the container so that one or more of the electrical terminals on the container make electrical contact with the terminals of the given pallet. However, in other embodiments the pallet lacks electrical terminals but provides a space for accessing the terminals on the bottom side of the container. Once the container has been stacked on the bottom layer, the method 30 ends (or, in some embodiments, returns to the idle process 21 of FIG. 4A).

If the bottom layer of the pallet already has been stacked, then it is recognized that a higher layer is being stacked, and special care must be taken to align the electrical terminals of the obtained container with those of a previously-stacked container. Thus, the method 30 begins a sequence of processes for stacking the container so that its electrical terminals make electrical contact with one or more electrical terminals on a top surface of a previously-stacked container.

The next process 37 determines the physical orientation of the container, and the following process 39 automatically identifies locations of electrical terminals on the container. Illustratively, these processes are performed automatically using a computer vision system, such as a camera with associated software in a computer processor. For example, the camera may image the obtained container and scan a two-dimension barcode (such as a QR code) that encodes the terminal locations, which the computer processor decodes as described above in connection with FIG. 3. However, it is appreciated that other systems and machines may be used for this purpose.

Once the container's orientation and location of its electrical terminals have been found, in process 41 the robotic arm stacks the container on the pallet to align the electrical terminals. That is, the process 41 determines the correct movements of the arm on the basis of both the identified physical locations of the terminals and the stacking pattern for the given pallet, and instructs the arm to grasp the container, move accordingly, and release the container. In this way, the electrical terminals on the container make electrical contact with one or more terminals on at least one previously-stacked container (and maybe more, in case the stacking pattern provides for overlapping containers). As described above in connection with FIG. 3, stacking containers in this way creates one or more vertical electrical circuits through the entire stack of containers.

For various reasons, despite the care taken to stack containers as just described, it may be the case that a newly-placed container fails to make a complete vertical electrical path between a terminal on its top surface and one on the bottom of the stack. Thus, the method employs a process 43 to test the electrical connectivity of the newly-placed container. In illustrative embodiments, the process 43 places an electrical probe, mounted on the robotic arm, onto (for wired testing) or near (for wireless testing) each of the electrical terminals on the container. Separately, corresponding terminals on the bottom of the stack or coupled to terminals on the pallet are probed. A series of test signal pulses sent from one probe to the other, or a resistance between the probes, is then measured to determine whether an electrical path exists between the probes.

The method 30 continues with a process 45 for deciding whether the electrical connection is “good” according to an appropriate heuristic. For example, the connection may be good when a certain impedance is measured during the testing of each electrical terminal on the just-stacked container. As the types of packaged electronic devices varies considerably, and the load during testing necessarily changes as a function of the number of layers in the stack, a precise number cannot be provided herein, but it is appreciated that a person having ordinary skill in the art will understand a suitable range of impedances based on the charging parameters.

If the process 45 determines that the connection is good, then the method proceeds to a decision process 47 for determining whether to finalize the pallet. That is, if the decision process 47 determines that the just-stacked container is not the last container to be stacked on the given pallet (e.g. by consulting a description of the stacking pattern), then the method 30 completes. The determination may be made based on the stack pattern (including the number of layers of containers that can be supported by the pallet) and whether the top layer is complete, which may be determined using the computer vision system and/or a count of the number of boxes placed.

However, if the process 47 determines that the just-stacked container is the last container to be stacked on the given pallet, then the method 30 includes one additional process 49 to finalize palletization (e.g. to wrap the entire stack in a wrapping material for structural stability, as known in the art). The decision process 47 may be performed by a computing processor in the palletizing system, while the finalizing process 49 may be performed using conventional means.

However, if the process 45 determines that the electrical connection is not good, then the method 30 proceeds to a decision process 51 for determining whether the just-stacked container was improperly manufactured or simply stacked improperly. To distinguish between these cases, a strategy may be employed to simply attempt to repeatedly resituate the container until either a good electrical connection is made or a redo count is reached. Thus, the decision process 51 may increment a redo counter, and find that the container is not faulty if the redo counter is less than a fixed number (say, 3 retries), returning to the process 37 to restack it and hopefully complete the method 30 with a normal status. But if the redo counter has reached the fixed number, then the decision process 51 may find that the container is faulty, and use the robotic arm to set the container aside for manual inspection in a process 53, then terminate the method 30 with an abnormal status.

Thus, various embodiments stack product containers on a pallet or crate, whereby charging terminals on the containers are rigorously tested for electrical connectivity so that they may be used during transit or storage to simultaneously charge multiple electronic devices packaged in a respective multiple number of containers.

FIG. 5 schematically shows components of a system 60 for determining stacking patterns and palletizing product containers. The system 60 includes two relevant components, namely a computer processor 62 and an articulating robotic arm 64. The computer processor 62 may be any processor known in the art, and is used to control the arm 64.

The articulating robotic arm 64 includes several components that are controlled by the computer processor 62. A first component is a collection of struts, joints, and servos 642 that are found on any typical robotic arm. The struts provide load-bearing for the arm itself and for carried items, the joints provide articulation and degrees of freedom for moving the struts, and the servos actuate the joints on command from the computer processor 62.

The articulating robotic arm 64 further includes a grasper 644, which may be any typical (e.g. suction) grasper known in the art of commercial robotic arms. Illustratively, the computer processor 62 controls the grasper 644 to grasp and release objects at appropriate times in the stacking process. It is appreciated that the design of the struts, joints, and servos 642 and the grasper 644 may vary between different embodiments, and that a person having ordinary skill in the art would understand how to undertake the design and construction of the same according to their application.

The articulating robotic arm 64 further includes a camera 646, which may be any camera known in the art capable of communicating with the computer processor 62. The camera 646 and the computer processor 62 together comprise a computer vision system, in which the camera 646 provides images to the computer processor 62 for analysis, and the computer processor 62 controls the arm 64 and its components in response to that analysis. Thus, for example, the computer vision system may be used to accurately position the grasper 644 in a position to grasp an object (e.g. a product container, as described above), and to move the grasper 644 to another desired location after it has grasped the object. It is appreciated that any computer vision system used in connection with embodiments must be sufficiently accurate to enable the system 60 to position containers so that strong electrical connections are made.

In illustrative embodiments, the computer processor 62 may control the camera 646 to determine an orientation of, and image a barcode on a top surface of, a container to be stacked. Moreover, the computer processor 62 may be configured to identify, based on a decoding of the scanned barcode, physical locations on the exterior of the container of electrical terminals for charging electronic devices packaged therein. Illustratively, the computer processor 62 may be configured to then control the grasper 644 to stack the container on a given pallet on the basis of both the physical locations of the container's electrical terminals, and a stacking pattern for the given pallet.

The stacking pattern may have been determined by the processes of FIG. 4A, or some other means. In general, the stacking pattern may have been determined as a function of linear dimensions of both the given pallet and containers to be stacked thereon, and of the locations of the electrical terminals. In this way, the electrical terminals of the container make electrical contact with electrical terminals having previously-identified locations (i.e., on the pallet itself or on a previously-stacked container sitting on the pallet).

The articulating robotic arm 64 further includes at least one electrical probe 648, which may be an electrical terminal (for wired probing) or an inductive coil (for wireless probing) as known in the art. The computer processor 62 may be configured to control the electrical probe 648 to test electrical connectivity of an electrical pathway existing vertically in the stack of containers. In particular, the pathway may exist between a terminal (e.g. one of the plates 12) electrically coupled to one or more of the electrical terminals (e.g. a pogo pin) on the just-placed container, and a terminal electrically coupled to a container on the bottom of the stack, or on the pallet.

FIG. 6 schematically shows relevant physical components of a computer 70 that may be used to embody the concepts, structures, and techniques disclosed herein. For example, the computer 70 may be used to implement part or all of the methods 20 and 30 shown in FIGS. 4A and 4B, or may be used to implement part or all of the system 60 shown in FIG. 5. Generally, the computer 70 has many functional components that communicate data with each other using data buses. The functional components of FIG. 6 are physically arranged based on the speed at which each must operate, and the technology used to communicate data using buses at the necessary speeds to permit such operation.

Thus, the computer 70 is arranged as high-speed components and buses 711 to 716 and low-speed components and buses 721 to 729. The high-speed components and buses 711 to 716 are coupled for data communication using a high-speed bridge 71, also called a “northbridge,” while the low-speed components and buses 721 to 729 are coupled using a low-speed bridge 72, also called a “southbridge.”

The computer 70 includes a central processing unit (“CPU”) 711 coupled to the high-speed bridge 71 via a bus 712. The CPU 711 is electronic circuitry that carries out the instructions of a computer program. As is known in the art, the CPU 711 may be implemented as a microprocessor; that is, as an integrated circuit (“IC”; also called a “chip” or “microchip”). In some embodiments, the CPU 711 may be implemented as a microcontroller for embedded applications, or according to other embodiments known in the art.

The bus 712 may be implemented using any technology known in the art for interconnection of CPUs (or more particularly, of microprocessors). For example, the bus 712 may be implemented using the HyperTransport architecture developed initially by AMD, the Intel QuickPath Interconnect (“QPI”), or a similar technology. In some embodiments, the functions of the high-speed bridge 71 may be implemented in whole or in part by the CPU 711, obviating the need for the bus 712.

The computer 70 includes one or more graphics processing units (GPUs) 713 coupled to the high-speed bridge 71 via a graphics bus 714. Each GPU 713 is designed to process commands from the CPU 711 into image data for display on a display screen (not shown). In some embodiments, the CPU 711 performs graphics processing directly, obviating the need for a separate GPU 713 and graphics bus 714. In other embodiments, a GPU 713 is physically embodied as an integrated circuit separate from the CPU 711 and may be physically detachable from the computer 70 if embodied on an expansion card, such as a video card. The GPU 713 may store image data (or other data, if the GPU 713 is used as an auxiliary computing processor) in a graphics buffer.

The graphics bus 714 may be implemented using any technology known in the art for data communication between a CPU and a GPU. For example, the graphics bus 714 may be implemented using the Peripheral Component Interconnect Express (“PCI Express” or “PCIe”) standard, or a similar technology.

The computer 70 includes a primary storage 715 coupled to the high-speed bridge 71 via a memory bus 716. The primary storage 715, which may be called “main memory” or simply “memory” herein, includes computer program instructions, data, or both, for use by the CPU 711. The primary storage 715 may include random-access memory (“RAM”). RAM is “volatile” if its data are lost when power is removed, and “non-volatile” if its data are retained without applied power. Typically, volatile RAM is used when the computer 70 is “awake” and executing a program, and when the computer 70 is temporarily “asleep”, while non-volatile RAM (“NVRAM”) is used when the computer 70 is “hibernating”; however, embodiments may vary. Volatile RAM may be, for example, dynamic (“DRAM”), synchronous (“SDRAM”), and double-data rate (“DDR SDRAM”). Non-volatile RAM may be, for example, solid-state flash memory. RAM may be physically provided as one or more dual in-line memory modules (“DIMMs”), or other, similar technology known in the art.

The memory bus 716 may be implemented using any technology known in the art for data communication between a CPU and a primary storage. The memory bus 716 may comprise an address bus for electrically indicating a storage address, and a data bus for transmitting program instructions and data to, and receiving them from, the primary storage 715. For example, if data are stored and retrieved 74 bits (eight bytes) at a time, then the data bus has a width of 74 bits. Continuing this example, if the address bus has a width of 32 bits, then 2³² memory addresses are accessible, so the computer 70 may use up to 8*2³²=32 gigabytes (GB) of primary storage 715. In this example, the memory bus 716 will have a total width of 64+32=96 bits. The computer 70 also may include a memory controller circuit (not shown) that converts electrical signals received from the memory bus 716 to electrical signals expected by physical pins in the primary storage 715, and vice versa.

Computer memory may be hierarchically organized based on a tradeoff between memory response time and memory size, so depictions and references herein to types of memory as being in certain physical locations are for illustration only. Thus, some embodiments (e.g. embedded systems) provide the CPU 711, the graphics processing units 713, the primary storage 715, and the high-speed bridge 71, or any combination thereof, as a single integrated circuit. In such embodiments, buses 712, 714, 716 may form part of the same integrated circuit and need not be physically separate. Other designs for the computer 70 may embody the functions of the CPU 711, graphics processing units 713, and the primary storage 715 in different configurations, obviating the need for one or more of the buses 712, 714, 716.

The depiction of the high-speed bridge 71 coupled to the CPU 711, GPU 713, and primary storage 715 is merely exemplary, as other components may be coupled for communication with the high-speed bridge 71. For example, a network interface controller (“NIC” or “network adapter”) may be coupled to the high-speed bridge 71, for transmitting and receiving data using a data channel. The NIC may store data to be transmitted to, and received from, the data channel in a network data buffer.

The high-speed bridge 71 is coupled for data communication with the low-speed bridge 72 using an internal data bus 73. Control circuitry (not shown) may be required for transmitting and receiving data at different speeds. The internal data bus 73 may be implemented using the Intel Direct Media Interface (“DMI”) or a similar technology.

The computer 70 includes a secondary storage 721 coupled to the low-speed bridge 72 via a storage bus 722. The secondary storage 721, which may be called “auxiliary memory”, “auxiliary storage”, or “external memory” herein, stores program instructions and data for access at relatively low speeds and over relatively long durations. Since such durations may include removal of power from the computer 70, the secondary storage 721 may include non-volatile memory (which may or may not be randomly accessible).

Non-volatile memory may comprise solid-state memory having no moving parts, for example a flash drive or solid-state drive. Alternately, non-volatile memory may comprise a moving disc or tape for storing data and an apparatus for reading (and possibly writing) the data. Data may be stored (and possibly rewritten) optically, for example on a compact disc (“CD”), digital video disc (“DVD”), or Blu-ray disc (“BD”), or magnetically, for example on a disc in a hard disk drive (“HDD”) or a floppy disk, or on a digital audio tape (“DAT”). Non-volatile memory may be, for example, read-only (“ROM”), write-once read-many (“WORM”), programmable (“PROM”), erasable (“EPROM”), or electrically erasable (“EEPROM”).

The storage bus 722 may be implemented using any technology known in the art for data communication between a CPU and a secondary storage and may include a host adaptor (not shown) for adapting electrical signals from the low-speed bridge 72 to a format expected by physical pins on the secondary storage 721, and vice versa. For example, the storage bus 722 may use a Universal Serial Bus (“USB”) standard; a Serial AT Attachment (“SATA”) standard; a Parallel AT Attachment (“PATA”) standard such as Integrated Drive Electronics (“IDE”), Enhanced IDE (“EIDE”), ATA Packet Interface (“ATAPI”), or Ultra ATA; a Small Computer System Interface (“SCSI”) standard; or a similar technology.

The computer 70 also includes one or more expansion device adapters 723 coupled to the low-speed bridge 72 via a respective one or more expansion buses 724. Each expansion device adapter 723 permits the computer 70 to communicate with expansion devices (not shown) that provide additional functionality. Such additional functionality may be provided on a separate, removable expansion card, for example an additional graphics card, network card, host adaptor, or specialized processing card.

Each expansion bus 724 may be implemented using any technology known in the art for data communication between a CPU and an expansion device adapter. For example, the expansion bus 724 may transmit and receive electrical signals using a Peripheral Component Interconnect (“PCI”) standard, a data networking standard such as an Ethernet standard, or a similar technology.

The computer 70 includes a basic input/output system (“BIOS”) 725 and a Super I/O circuit 726 coupled to the low-speed bridge 72 via a bus 727. The BIOS 725 is a non-volatile memory used to initialize the hardware of the computer 70 during the power-on process. The Super I/O circuit 726 is an integrated circuit that combines input and output (“I/O”) interfaces for low-speed input and output devices 728, such as a serial mouse and a keyboard. In some embodiments, BIOS functionality is incorporated in the Super I/O circuit 726 directly, obviating the need for a separate BIOS 725.

The bus 727 may be implemented using any technology known in the art for data communication between a CPU, a BIOS (if present), and a Super I/O circuit. For example, the bus 727 may be implemented using a Low Pin Count (“LPC”) bus, an Industry Standard Architecture (“ISA”) bus, or similar technology. The Super I/O circuit 726 is coupled to the I/O devices 728 via one or more buses 729. The buses 729 may be serial buses, parallel buses, other buses known in the art, or a combination of these, depending on the type of I/O devices 728 coupled to the computer 70.

In the foregoing detailed description, various features of embodiments are grouped together in one or more individual embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claims require more features than are expressly recited therein. Rather, inventive aspects may lie in less than all features of each disclosed embodiment.

Having described implementations which serve to illustrate various concepts, structures, and techniques which are the subject of this disclosure, it will now become apparent to those of ordinary skill in the art that other implementations incorporating these concepts, structures, and techniques may be used. Accordingly, it is submitted that that scope of the patent should not be limited to the described implementations but rather should be limited only by the spirit and scope of the following claims. 

What is claimed is:
 1. A method of palletizing containers, the method comprising: obtaining a container for a given pallet, the container having first electrical terminals for charging electronic devices packaged therein; automatically identifying physical locations, on the exterior of the container, of the first electrical terminals; and using a robotic arm to stack the container on the given pallet on the basis of both (a) the identified physical locations and (b) a stacking pattern for the given pallet, so that one or more of the first electrical terminals make electrical contact with one or more second electrical terminals having previously-identified locations.
 2. The method according to claim 1, wherein using the robotic arm to stack the container comprises, when stacking a bottom layer of containers, stacking the container so that the one or more of the first electrical terminals make electrical contact with the one or more second electrical terminals at fixed locations on a top surface of the given pallet.
 3. The method according to claim 1, wherein using the robotic arm to stack the container comprises, when stacking a layer other than a bottom layer of containers, stacking the container so that the one or more of the first electrical terminals make electrical contact with the one or more second electrical terminals on a top surface of a previously-stacked container.
 4. The method according to claim 1, wherein automatically identifying the physical locations of the first electrical terminals comprises using a computer vision system.
 5. The method according to claim 4, wherein using the computer vision system comprises scanning a two-dimensional barcode that encodes the locations of the first electrical terminals on the container.
 6. The method according to claim 1, further comprising using a first electrical probe, mounted on the robotic arm, to test electrical connectivity between a terminal electrically coupled to the one or more of the first electrical terminals, and a terminal electrically coupled to the one or more of the second electrical terminals.
 7. The method according to claim 6, wherein the terminal electrically coupled to the one or more of the first electrical terminals comprises a terminal on a top surface of the container, and wherein the terminal electrically coupled to the one or more of the second electrical terminals comprises a terminal on the given pallet.
 8. The method according to claim 6, further comprising, when the test indicates a lack of electrical connectivity, using the robotic arm to set the container aside for manual inspection.
 9. The method according to claim 1, further comprising using a computer processor to determine the stacking pattern as a function of linear dimensions of both the given pallet and containers to be stacked thereon, and of the locations of the first and second electrical terminals.
 10. A tangible, computer-readable storage medium in which is non-transitorily stored computer program code that, when executed by a computer processor, performs a method of palletizing containers, the method comprising: obtaining a container for a given pallet, the container having first electrical terminals for charging electronic devices packaged therein; automatically identifying physical locations, on the exterior of the container, of the first electrical terminals; and using a robotic arm to stack the container on the given pallet on the basis of both (a) the identified physical locations and (b) a stacking pattern for the given pallet, so that one or more of the first electrical terminals make electrical contact with one or more second electrical terminals having previously-identified locations.
 11. The storage medium according to claim 10, wherein using the robotic arm to stack the container comprises, when stacking a bottom layer of containers, stacking the container so that the one or more of the first electrical terminals make electrical contact with the one or more second electrical terminals at fixed locations on a top surface of the given pallet.
 12. The storage medium according to claim 10, wherein using the robotic arm to stack the container comprises, when stacking a layer other than a bottom layer of containers, stacking the container so that the one or more of the first electrical terminals make electrical contact with the one or more second electrical terminals on a top surface of a previously-stacked container.
 13. The storage medium according to claim 10, wherein automatically identifying the physical locations of the first electrical terminals comprises using a computer vision system.
 14. The storage medium according to claim 13, wherein using the computer vision system comprises scanning a two-dimensional barcode that encodes the locations of the first electrical terminals on the container.
 15. The storage medium according to claim 10, further comprising program code for using a first electrical probe, mounted on the robotic arm, to test electrical connectivity between a terminal electrically coupled to the one or more of the first electrical terminals, and a terminal electrically coupled to the one or more of the second electrical terminals.
 16. The storage medium according to claim 15, wherein the terminal electrically coupled to the one or more of the first electrical terminals comprises a terminal on a top surface of the container, and wherein the terminal electrically coupled to the one or more of the second electrical terminals comprises a terminal on the given pallet.
 17. The storage medium according to claim 15, further comprising program code for, when the test indicates a lack of electrical connectivity, using the robotic arm to set the container aside for manual inspection.
 18. The storage medium according to claim 10, further comprising program code to determine the stacking pattern as a function of linear dimensions of both the given pallet and containers to be stacked thereon, and of the locations of the first and second electrical terminals.
 19. A system for palletizing containers, the system comprising: an articulating robotic arm having a grasper, a camera, and an electrical probe; and a computer processor, coupled to the robotic arm, wherein the computer processor is configured to: control the camera to determine an orientation of, and image a barcode on a top surface of, a container; based on the barcode, identify physical locations, on the exterior of the container, of first electrical terminals for charging electronic devices packaged therein; control the grasper to stack the container on a given pallet on the basis of both (a) the identified physical locations and (b) a stacking pattern for the given pallet, so that one or more of the first electrical terminals make electrical contact with one or more second electrical terminals having previously-identified locations; and control the electrical probe to test electrical connectivity between a terminal electrically coupled to the one or more of the first electrical terminals, and a terminal electrically coupled to the one or more of the second electrical terminals.
 20. The system according to claim 19, wherein the computer processor is further configured to determine the stacking pattern as a function of linear dimensions of both the given pallet and containers to be stacked thereon, and of the locations of the first and second electrical terminals. 